package org.al.poc.persistence.dao;

import java.util.Properties;

/**
 * @author Raphael, Jérome
 *
 */
public abstract class DaoFactoryJpa extends DaoFactory {

	/**
	 * Le type de SGBD avec lequel on travaille.
	 */
	public enum TypeSGBD { Oracle };
	
	private static TypeSGBD typeSGBD;
		
	public static void setTypeSGBD (TypeSGBD type) {
		typeSGBD = type;
	}
	
	/**
	 * Créer et renvoie une fabrique de Dao associée au SGBD géré par JPA.
	 * @param prop les propriétés de connexion à la BD.
	 * @return une fabrique de DAO associée au SGBD géré par JPA.
	 * @throws DaoException si un problème de persistance est rencontré.
	 */
	public static DaoFactoryJpa getDaoFactoryJpa (Properties prop) throws DaoException {
		switch (typeSGBD) {
			case Oracle : 
				return new DaoFactoryJpaOracle(prop);
			default:
				throw new IllegalArgumentException("Type de SGBD inconnu !");
		}
	}


}
